Many types of computer systems are currently in wide use. Some such systems are large, and can include thousands of different forms and many different workflows, as well as a large number of different data models, among other things.
Some such computer systems include business systems, such as enterprise resource planning (ERP) systems, customer relations management (CRM) systems, line-of-business (LOB) systems, database systems, among many others. These types of systems are often customized, and some heavily customized, when they are deployed within an organization.
For example, a software manufacturer may provide a base computer system that is subsequently modified by developers, such as value added resellers and independent software vendors. The modified version of the computer system may then be ultimately implemented within an organization (such as a business). The computer system is often further modified during implementation. Also, once the computer system is finally deployed, it may be even further modified over time. For instance, the end users (or their administrators) may download fixes, cumulative updates, or make other modifications, customizations or extensions to the computing environment where the computing system is deployed. This often results in every instance of the computer system being unique, because the ultimate implementation can be very tightly coupled to the customer, industry, region and mode of operation of a given enterprise.
This can lead to challenges when a user of the computer system attempts to obtain technical support in order to address an issue with the computer system. Currently, the support experience for a user can be quite cumbersome and time consuming. While the support experience can take many forms, one common form involves the user first calling a technical support person by telephone. The user is connected with a support engineer who often asks the user a variety of different questions in order to obtain some idea of the symptoms of the technical issue that the user is encountering. This is done so the support engineer can attempt to reproduce the problem so that it can be fixed.
Such computer systems are often so complex that just reproducing the problem can be very difficult. The amount of information that is normally needed in order to accurately reproduce the problem can be very large. Often, this information is not all gathered during the initial telephone discussion. Instead, the support personnel follow up with the user by having additional telephone calls, and by communicating in other ways. Often, this phase of the support experience involves many electronic mail exchanges between the user and the support personnel, simply in order to clarify the exact nature of the problem, and in order to reproduce the environment that the user has, so the problem can be addressed by the technical support personnel.
Once the support engineer is finally able to reproduce the problem, it is described and often sent to a different development team in order to generate a fix for the problem. The developers that are attempting to fix the problem may need even more information from the user that reported the problem, which results in more clarifying communications between the user and the developer. When the developer finally believes that he or she has developed a fix for the problem, the user is notified (often by e-mail) that a fix has been developed, and that it can be applied by the user.
Sometimes, even after the fix is applied by the user, it fails to fix the problem that the user reported. Thus, the entire process (or at least parts of it) are repeated. This can be quite frustrating for the user.
The discussion above is merely provided for general background information and is not intended to be used as an aid in determining the scope of the claimed subject matter.